package binary_search_tree

type IBinarySearchTree interface {
	Size() int
	IsEmpty() bool
	IsNotEmpty() bool

	Push(value interface{})
	Min() (bool, interface{})
	Max() (bool, interface{})
	Has(value interface{}) bool
	PopMin() (bool, interface{})
	PopMax() (bool, interface{})
	Remove(value interface{}) bool
	Clear()

	Iterator() IIterator
	String() string
}
